package com.fxm.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fxm.domain.User;
import com.fxm.returns.RespEntity;
import com.fxm.returns.RespTable;
import com.fxm.vo.MapVO;
import com.fxm.vo.param.LoginParam;
import com.fxm.vo.param.UserParam;
import com.fxm.vo.result.SexResult;

import java.util.List;

/**
 * <p>
 * 用户 服务类
 * </p>
 *
 * @author fxm
 * @since 2021-02-04
 */
public interface UserService extends IService<User> {
    /**
     * 后台管理系统登陆功能
     * @param loginParam
     * @return
     */
    RespEntity<User> login(LoginParam loginParam);

    /**
     * 用户列表
     * @param userParam
     * @return
     */
    RespTable<List<User>> queryAllUser(UserParam userParam);

    /**
     * 中国地图
     * @param beginDate
     * @param endDate
     * @return
     */
    RespEntity<List<MapVO>> chinaMap(String beginDate, String endDate);

    /**
     * 省份地图
     * @param province
     * @param beginDate
     * @param endDate
     * @return
     */
    RespEntity<List<MapVO>> provinceMap(String province, String beginDate, String endDate);

    /**
     * 发送短信验证码
     * @param mobile
     * @return
     */
    RespEntity<Integer> sendMsg(String mobile);

    /**
     * 按照ids获取用户信息
     * @param ids
     * @return
     */
    RespEntity<List<User>> queryUserByIds(Integer[] ids);

    /**
     * 获取全部用户信息
     * @return
     */
    RespEntity<List<User>> allUser();

    /**
     * 封禁用户
     * @param id
     * @return
     */
    RespEntity banUser(Integer id);

    /**
     * 用户性别统计
     * @return
     */
    RespEntity<SexResult> querySexCount();

    /**
     * 用户黑名单列表
     * @return
     */
    RespTable<List<User>> blackList(UserParam userParam);

    /**
     * 用户解封
     * @param id
     * @return
     */
    RespEntity unseal(Integer id);
}
